The system and method disclosed herein relates to a file management system for a Flash based memory system and more particularly relates to a Flash memory file system using different types of storage media.
File system is the software that controls how data is stored and retrieved from storage media. It includes structure and logic rules used to manage data and information about the data. Without a file system, information placed in a storage area would be one large body of data with no way to tell where one piece of information stops and the next begins. File system organize data as a group of files. Each file includes one or more blocks of actual user data and information describing and identifying the user data.
There are many kinds of file systems in the market. They are different on structure and logic, properties of speed, flexibility, security, size and more. Some file systems have been designed for specific applications. File systems can be used to manage different kinds of storage media. A storage media care use different kinds of storage devices. There are file systems designed for a specific type of storage devices. For example, there are Disk file systems, Optical discs, Flash file systems, and Tape file systems.
A Flash file system is specifically designed in consideration of the special abilities, performance and restrictions of Flash memory devices. Although Disk file system is capable of managing Flash memory devices as the underlying storage media, it is much more advantageous to use a file system specifically designed for a memory product that uses Flash devices as the primary storage media.
There are a few Flash file systems already in the market. Commercially available ones include UBIFS, JFFS2, YAFFS, and LogFS.
There are other file systems that claim to be a flash file system but should be more properly called block device drivers. Examples include TrueFFS and ExtremeFFS. These kinds of file system hide the detailed implementation of error correction, bad block management and wear leveling, and provide a block device like interface. However, it does not have a file system interface. Neither does it manage the meta data and indexing information of files. These limited implementations are out of scope of the inventions disclosed herein.